The multiplier component uses a Time-Weighted Average (TWA) calculation to determine user holding levels for XRD, LSUs, and other whitelisted derivatives. This ensures fair multiplier allocation based on actual holding duration.
TWA = (∑(balance_i × time_interval_i)) ÷ total_time
Where:
balance_i is the account balance during interval itime_interval_i is the duration of interval itotal_time is the sum of all time intervalsflowchart TD Start[Record initial balance and timestamp] --> B[Transaction stream] B --> C{Balance change?} C -->|No| D{End of period?} D -->|No| B D -->|Yes| E[Calculate time-weighted average] C -->|Yes| I[Record updated balance and timestamp] E --> N[End]
If an account maintains 10,000 XRD for the entire 7-day period:
If an account starts with 5,000 XRD for 1 day, then increases to 10,000 XRD for the remaining 6 days:
If an account holds 10,000 XRD for 3 days, then 0 XRD for 3 days, then 10,000 XRD for 1 day:
If an account holds 0 XRD for 6 days and only adds 10,000 XRD on the last day:
The TWA calculation ensures that: